Prior art page printers capture an entire page image before any images are placed on paper. In printers which employ laser engines as the "print mechanism", data must be provided at a speed that is fast enough to keep up with the print action. In such printers, formatting is either performed on the host computer, with large volumes of rasterized image data shipped to the printer at high speed, or on a formatter within the printer itself. Since a laser printer engine operates at a constant speed, if rasterized image data is not available when a previous segment of image data has been imprinted, a "print overrun" occurs and the page is not printable.
Several methods have been used in the prior art to avoid print overruns. First, a full raster bit map of an entire page is stored in the printer so that the print mechanism always has rasterized data awaiting printing. This solution requires large amounts of random access memory for each page. A second method for assuring the availability of print data to a laser printer constructs a display list and builds a page description in two steps. During formatting, a page description received from a host is converted into a series of simple commands, called display commands that describe what must be printed. The display commands are parsed and the described objects are then rendered into a raster bit map. This procedure enables lesser amounts of RAM to be used for the print image.
The prior art has further improved on the second method by sorting display commands according to their vertical position on a page. The page is then divided into sections called page strips, which page strips are then individually rasterized and passed to the print engine for printing. When the display commands are rasterized at a fast enough pace, the same memory used to store a first page strip can be reused for a subsequent page strip further down the page. However, under certain circumstances, certain page strips will include many display commands and require a longer than normal time for rasterization.
In the Laser Jet III printer (manufactured by the assignee hereof) three raster buffers were employed, with the first buffer being reused for a fourth strip on a page, the second reused for a fifth strip, etc. For an eight page per minute printer, little time was left between the finishing of a strip and the time when a next strip would be required from the same print buffer. In the case of a complex strip, rasterization time could increase to such an extent that the succeeding strip could not be delivered on time and a print overrun would occur.
In U.S. Pat. No. 5,129,049 to Cuzzo et al., a page printer is described which addresses the problem created by complex page strips. Cuzzo et al divide each page of text into lateral page strips and allocate a page strip rasterization time to each page strip, based upon the printer's page print time. A rasterization time for each page strip is then calculated, based upon the complexity of the display commands contained within the page strip. If rasterization time for a page strip exceeds the allocated page strip rasterization time, indicating a complex page strip, the page strip is rasterized immediately. Otherwise, the display commands for the page strip are inserted into a queue and are rasterized in order as they are reached. Whenever a complex page strip is reached for processing, its pre-rasterized version is immediately accessed and employed--thereby preventing a print overrun.
One drawback of the Cuzzo et al procedure is that page throughput for the printer is somewhat affected by the prerasterization actions since time must be taken to accomplish prerasterization. This delay, added to other page processing times, causes a limitation on the page printing capability of the printer.
Accordingly, it is an object of this invention to provide an improved method and apparatus for reducing the possibility of print overruns in a constant speed print mechanism.
It is another object of this invention to provide an improved method for preventing print overruns which minimally affects the page throughput capability of a printer.